// "2022-03-21T15:55:03.171+00:00" => 2022-03-21 15:15:03
export function formatDate(date, fmt) {
  if (typeof date == 'string') {
    return date;
  }

  if (!fmt) fmt = "yyyy-MM-dd hh:mm:ss";

  if (!date || date == null) return null;
  var o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), // 日
    'h+': date.getHours(), // 小时
    'm+': date.getMinutes(), // 分
    's+': date.getSeconds(), // 秒
    'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
    'S': date.getMilliseconds() // 毫秒
  }
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
  }
  return fmt
}


export function toStandardTime(originStr){
    return formatDate(new Date(originStr))
}


// 当前时间t往后退n天
export function getPreviousDayTime(t, n){
    if(n == null)return null; 
    t -= (1 * 24 * 60 * 60 * 1000) * n
    return new Date(t)
}


// 获取当前周数
export function getWeek(date){
  // eq: 2022-4-13 
  var now = new Date(date)
  var nowYear = now.getFullYear()
  var nowMonth = now.getMonth() + 1
  var nowDay = now.getDate()

  // 获取本年1-1日是周几
  var t = new Date(nowYear + "-1-1")
  var tDayOfWeek = t.getDay()
  if(tDayOfWeek == 0)tDayOfWeek = 7

  // 周几
  var dayOfWeek = now.getDay()
  if(dayOfWeek == 0)dayOfWeek = 7
  // 月份天数枚举
  var days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

  // 计算从1-1至今有多少天
  var sum_day = 0;
  for(var i = 1; i < nowMonth; i++){
    sum_day += days[i];
  }
  sum_day += nowDay - (1 + (7 - tDayOfWeek))  // 加上本月，减去本年首周天数 
  // 闰年天数加1
  if((t.year % 4 == 0 && t.year % 100 != 0) || t.year % 400 == 0){
    sum_day += 1
  }
  var res = Math.ceil(sum_day / 7) + 1   // 计算当前时间周数，加上首周
  return res;
}

// 获取当前时间的年份
export function getYear(date){
  return new Date(date).getFullYear()
}